<?php

namespace App\Services\User\Traits;

/**
 * 所有trait的顶级trait
 * @author   李全春   <adv30@126.com>  <time:2017年6月12日16:02:38>
 */
trait Password
{

   // 根据用户的登陆密码加盐后生成32位登录密码
    private function _makeLoginPassword(string $password): array
    {
        // 生成登录密码的盐
        $login_salt = rand_string(8);
        $login_password = md5($password . 'thinklev_login' . $login_salt);
        return ['login_password' => $login_password, 'login_salt' => $login_salt];
    }
    // 根据用户的支付密码加盐后生成32位支付密码
    private function _makePayPassword(string $password): array
    {
        // 生成支付密码的盐
        $pay_salt = rand_string(8);
        $pay_password = md5($password . 'thinklev_pay' . $pay_salt);
        return ['pay_password' => $pay_password, 'pay_salt' => $pay_salt];
    }
    // 验证用户传入的登录密码是否正确
    private function _checkLoginPassword(string $inputPassword, array $data): bool
    {
        $login_password = md5($inputPassword . 'thinklev_login' . $data['login_salt']);
        return $login_password === $data['login_password'];
    }
    // 验证用户传入的支付密码是否正确
    private function _checkPayPassword(string $inputPassword, array $data): bool
    {
        $pay_password = md5($inputPassword . 'thinklev_pay' . $data['pay_salt']);
        return $pay_password === $data['pay_password'];
    }
}